package com.wg.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.wg.R;
import com.wg.entity.Subtask;
import com.wg.entity.Users;
import com.wg.entity.WgInfos;
import com.wg.entity.dto.SubTaskUpdateVo;
import com.wg.entity.dto.SubTaskVo;
import com.wg.entity.dto.WgInfoAddDto;
import com.wg.entity.vo.PageVo;

import java.util.List;

public interface WgInfoService extends IService<WgInfos> {
    R<PageVo<WgInfos>> findAll(Integer pageSize, Integer pageNum);

    R<PageVo<WgInfos>> findOwnedWGById(Integer pageSize, Integer pageNum, Integer userId);

    R<PageVo<WgInfos>> findJoinedWGById(Integer pageSize, Integer pageNum, Integer userId);

    R<PageVo<WgInfos>> findFocusedWGById(Integer pageSize, Integer pageNum, Integer userId);

    R addWG(WgInfoAddDto wgInfo);

    R completeWG(SubTaskUpdateVo subtask);

    R<PageVo<WgInfos>> queryWG(Integer pageSize, Integer pageNum, String startTime, String endTime,
                               String creator, Long focusUserId, Boolean focusFlag, String wgName);

    R<WgInfos> getWgById(Long id);

    R<List<Subtask>> getMembers(Integer wgId);

    R deleteMember(SubTaskVo task);
}
